




C++ Algorithm Functions
The library defines a large number of functions that are specially suited to be used on a large number of elements at a time or say a range. Now let's straightway take a look at these functions.
Non-modifying sequence operations:


Function
Description


all_of
The following function tests a condition to all the elements of the range.


any_of
The following function tests a condition to some or any of the elements of the range


none_of
The following function checks if none of the elements follow the condition or not.


for_each
The function applies an operation to all the elements of the range.


find
The function finds a value in the range.


find_if
The function finds for an element in the range.


find_if_not
The function finds an element in the range but in the opposite way as the above one.


find_end
The function is used to return the last element of the range.


find_first_of
The function finds for the element that satisfies a condition and occurs at the first.


adjacent_find
The function makes a search for finding the equal and adjacent elements in a range.


count
The function returns the count of a value in the range.


count_if
The function returns the count of values that satisfies a condition.


mismatch
The function returns the value in sequence which is the first mismatch.


equal
The function is used to check if the two ranges have all elements equal.


is_permutation
The function checks whether the range in reference is a permutation of some other range.


search
The function searches for the subsequence in a range.


search_n
The function searches the range for the occurrence of an element.


Modifying sequence operations


Function
Description


copy
The function copies the range of elements.


copy_n
The function copies n elements of the range


copy_if
The function copies the elements of the range if a certain condition is fulfilled.


copy_backward
The function copies the elements in a backward order


move
The function moves the ranges of elements.


move_backward
The function moves the range of elements in the backward order


swap
The function swaps the value of two objects.


swap_ranges
The function swaps the value of two ranges.


iter_swap
The function swaps the values of two iterators under reference. 


transform
The function transforms all the values in a range.


replace
The function replaces the values in the range with a specific value.


replace_if
The function replaces the value of the range if a certain condition is fulfilled.


replace_copy
The function copies the range of values by replacing with an element.


replace_copy_if
The function copies the range of values by replacing with an element if a certain condition is fulfilled.


fill
The function fills the values in the range with a value.


fill_n
The function fills the values in the sequence.


generate
The function is used for the generation of values of the range.


generate_n
The function is used for the generation of values of the sequence.


remove
The function removes the values from the range.


remove_if
The function removes the values of the range if a condition is fulfilled.


remove_copy
The function copies the values of the range by removing them.


remove_copy_if
The function copies the values of the range by removing them if a condition is fulfilled.


unique
The function identifies the unique element of the range.


unique_copy
The function copies the unique elements of the range.


reverse
The function reverses the range.


reverse_copy
The function copies the range by reversing values.


rotate
The function rotates the elements of the range in left direction.


rotate_copy
The function copies the elements of the range which is rotated left.


random_shuffle
The function shuffles the range randomly.


shuffle
The function shuffles the range randomly with the help of a generator.


Partitions


Function
Description


is_partitioned
The function is used to deduce whether the range is partitioned or not.


partition
The function is used to partition the range.


stable_partition
The function partitions the range in two stable halves.


partition_copy
The function copies the range after partition.


partition_point
The function returns the partition point for a range.


Sorting


Function
Description


sort
The function sorts all the elements in a range.


stable_sort
The function sorts the elements in the range maintaining the relative equivalent order.


partial_sort
The function partially sorts the elements of the range.


partial_sort_copy
The function copies the elements of the range after sorting it.


is_sorted
The function checks whether the range is sorted or not.


is_sorted_until
The function checks till which element a range is sorted.


nth_element
The functions sorts the elements in the range.


Binary search


Function
Description


lower_bound
Returns the lower bound element of the range.


upper_bound
Returns the upper bound element of the range.


equal_range
The function returns the subrange for the equal elements.


binary_search
The function tests if the values in the range exists in a sorted sequence or not.


Merge


Function
Description


merge
The function merges two ranges that are in a sorted order.


inplace_merge
The function merges two consecutive ranges that are sorted.


includes
The function searches whether the sorted range includes another range or not.


set_union
The function returns the union of two ranges that is sorted.


set_intersection
The function returns the intersection of two ranges that is sorted.


set_difference
The function returns the difference of two ranges that is sorted.


set_symmetric_difference
The function returns the symmetric difference of two ranges that is sorted.


Heap


Function
Description


push_heap
The function pushes new elements in the heap.


pop_heap
The function pops new elements in the heap.


make_heap
The function is used for the creation of a heap.


sort_heap
The function sorts the  heap.


is_heap
The function checks whether the range is a heap.


is_heap_until
The function checks till which position a range is a heap.


Min/Max


Function
Description

min
Returns the smallest element of the range.

max
Returns the largest element of the range.


minmax
Returns the smallest and largest element of the range.


min_element
Returns the smallest element of the range.


max_element
Returns the largest element of the range.


minmax_element
Returns the smallest and largest element of the range.


Other functions


Function
Description

lexicographical_comapre
The function performs the lexicographical less-than comparison.

next_permutation
The function is used for the transformation of range into the next permutation.


perv_permutation
The function is used for the transformation of range into the previous permutation.
















Please Share





